﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SVC_BLL;
using Microsoft.VisualBasic;
using ImprimeCupom;
using System.Net;
using System.Net.Sockets;

namespace SVC
{
    public partial class Menu : Form
    {
        public Menu()
        {
            InitializeComponent();
        }
        public int sair = 0;

        //Não permitir redimensionar o Menu
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case 0x0112: // Esse é o codigo de uma mensagem referente a barra de titulo do formulario
                    int command = m.WParam.ToInt32() & 0xfff0;
                    // 0xF010 eh o codigo do comando "Restore" 
                    // 0xF120 eh o Duplo Clique da Barra
                    if ((new int[] { 0xF010, 0xF120 }).Contains(command))
                    {
                        // Se for executado qq um desses casos ignorar o comando (nao passar para o windows) ao menos q o form esteje minimizado.. ai continua...
                        if (this.WindowState != FormWindowState.Minimized) return;
                    }
                    break;
            }

            base.WndProc(ref m);
        }


        private void CATEGORIASToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Categoria frm = new CADASTROS.Categoria();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Escape)
                if (sair == 0) //A variável sair foi utilizada pois quando ocorre o "this.close" ele entra novamente nesta função, ocorrendo assim uma recursividade, logo é necessário uma variável para que se consiga controlar o momento em que a tela deve ser fechada
                {
                    if (MessageBox.Show("Deseja realmente sair?", "Fechar", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                    {
                        sair = 1; // No momento em que o cliente confirmar que quer sair o evento por si só concluirá o fechamento, não sendo necessário informar o this.close
                        this.Close();
                    }
                }
                
            return base.ProcessCmdKey(ref msg, keyData);
        }

        //public static DateTime GetNetworkTime()
        //{
        //    //Servidor nacional para melhor latência
        //    const string ntpServer = "a.ntp.br";

        //    // Tamanho da mensagem NTP - 16 bytes (RFC 2030)
        //    var ntpData = new byte[48];

        //    //Indicador de Leap (ver RFC), Versão e Modo
        //    ntpData[0] = 0x1B; //LI = 0 (sem warnings), VN = 3 (IPv4 apenas), Mode = 3 (modo cliente)

        //    var addresses = Dns.GetHostEntry(ntpServer).AddressList;

        //    //123 é a porta padrão do NTP
        //    var ipEndPoint = new IPEndPoint(addresses[0], 123);
        //    //NTP usa UDP
        //    var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

        //    socket.Connect(ipEndPoint);

        //    //Caso NTP esteja bloqueado, ao menos nao trava o app
        //    socket.ReceiveTimeout = 3000;

        //    socket.Send(ntpData);
        //    socket.Receive(ntpData);
        //    socket.Close();

        //    //Offset para chegar no campo "Transmit Timestamp" (que é
        //    //o do momento da saída do servidor, em formato 64-bit timestamp
        //    const byte serverReplyTime = 40;

        //    //Pegando os segundos
        //    ulong intPart = BitConverter.ToUInt32(ntpData, serverReplyTime);

        //    //e a fração de segundos
        //    ulong fractPart = BitConverter.ToUInt32(ntpData, serverReplyTime + 4);

        //    //Passando de big-endian pra little-endian
        //    intPart = SwapEndianness(intPart);
        //    fractPart = SwapEndianness(fractPart);

        //    var milliseconds = (intPart * 1000) + ((fractPart * 1000) / 0x100000000L);

        //    //Tempo em **UTC**
        //    var networkDateTime = (new DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc)).AddMilliseconds((long)milliseconds);

        //    return networkDateTime.ToLocalTime();
        //}

        // stackoverflow.com/a/3294698/162671
        //static uint SwapEndianness(ulong x)
        //{
        //    return (uint)(((x & 0x000000ff) << 24) +
        //                   ((x & 0x0000ff00) << 8) +
        //                   ((x & 0x00ff0000) >> 8) +
        //                   ((x & 0xff000000) >> 24));
        //}

        private void Menu_Load(object sender, EventArgs e)
        {
            try
            {
                
                //Verificar Licença

                LicencaBLL objLic = new LicencaBLL();
                String chave="";
                objLic.localizarLicenca(DateTime.Now.Year.ToString(), "YEAR(lic_data)");
                int tempoDecorrido = 0;

                DataTable tab = objLic.localizar(DateTime.Now.Year.ToString(), "YEAR(lic_data)");
                if (tab.Rows.Count == 0)
                {
                    objLic.lic_chave = "VCFVFK6LXFRFJUSMOKN8STTHACWOX40H1K9ZBWTZ62EF6U4VZ";
                    String data;
                    if(DateTime.Now.Day<12)
                        data = DateTime.Now.Day+"/" + DateTime.Now.Month +"/"+ DateAndTime.Now.Year;
                    else
                        data = "12/" + DateTime.Now.Month +"/"+ DateAndTime.Now.Year;
                    objLic.lic_data = DateTime.Parse(data);
                    objLic.inserir();
                    objLic.localizarLicenca(DateTime.Now.Year.ToString(), "Year(lic_data)");
                }
                DateTime DataLicenca = DateTime.Parse(objLic.lic_data.ToString());
                if(objLic.lic_chave.Length == 49)
                    DataLicenca = DataLicenca.AddDays(30);
                else if (objLic.lic_chave.Length == 50)
                    DataLicenca = DataLicenca.AddDays(90);
                TimeSpan date = Convert.ToDateTime(DataLicenca) - Convert.ToDateTime(DateTime.Now);
                String expirou = "";

                tempoDecorrido = date.Days;

                if (tempoDecorrido < 15)
                {
                    expirou = "Não";
                    MessageBox.Show("A chave do registro expirará em " + (tempoDecorrido) + " dias.", "Chave de Registro", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }
                else if (tempoDecorrido < 1)
                {
                    expirou = "Sim";
                    MessageBox.Show("A chave do registro expirou.", "Tempo para avaliação excedido", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }

                //if (objLic.lic_chave.Length == 49)
                //{
                //    if (tempoDecorrido < 15)
                //    {
                //        expirou = "Não";
                //        MessageBox.Show("A chave do registro expirará em " + (tempoDecorrido) + "dias.", "Chave de Registro", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                //    }
                //}
                //if (objLic.lic_chave.Length == 50)
                //{
                //    if (tempoDecorrido < 15)
                //    {
                //        expirou = "Não";
                //        MessageBox.Show("A chave do registro expirará em " + (tempoDecorrido) + "dias.", "Chave de Registro", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                //    }
                //}
            loop:
                int ativado = 1;
                if (expirou == "Sim")
                    {
                        ativado = 0;
                        do
                        {
                            chave = Interaction.InputBox("Informe a chave para ativação do sistema", "Ativar Sistema", "", this.Width - this.Width / 2 - 200, this.Height - this.Height / 2 - 150);
                            if (chave == "")
                                MessageBox.Show("Chave não correspondente");
                        } while (chave == "");

                        DataTable tabChave = objLic.localizar(chave, "lic_chave");
                        if (tabChave.Rows.Count > 0)
                        {
                            MessageBox.Show("A chave: \n'"+chave+"'\n já foi utilizada, por favor insira uma nova chave");
                            goto loop;
                        }
               
                if (chave.Length == 49)
                {
                    if (DateTime.Now.Month % 2 == 0)
                    {
                        if (chave[4].ToString() == "F" && chave[12].ToString() == "J" && chave[26].ToString() == "W" && chave[27].ToString() == "O")
                        {
                            objLic.lic_chave = chave; objLic.lic_data= DateTime.Now;
                            objLic.inserir();
                            ativado = 1;
                        }
                    }
                    else
                    {
                        if (chave[1].ToString() == "A" && chave[21].ToString() == "C" && chave[30].ToString() == "G" && chave[31].ToString() == "F")
                        {
                            objLic.lic_chave = chave; objLic.lic_data = DateTime.Now;
                            objLic.inserir();
                            ativado = 1;
                        }       
                    }
                }
                else if (chave.Length == 50)
                {
                    if (DateTime.Now.Month % 2 == 0)
                    {
                        if (chave[1].ToString() == "D" && chave[2].ToString() == "G" && chave[25].ToString() == "O" && chave[46].ToString() == "Q")
                        {
                            objLic.lic_chave = chave; objLic.lic_data = DateTime.Now;
                            objLic.inserir();
                            ativado = 1;
                        }
                    }
                    else
                    {
                        if (chave[2].ToString() == "Y" && chave[23].ToString() == "B" && chave[36].ToString() == "R" && chave[42].ToString() == "W")
                        {
                            objLic.lic_chave = chave; objLic.lic_data = DateTime.Now;
                            objLic.inserir();
                            ativado = 1;
                        }
                    }
                }
                    }
                if (ativado == 0)
                goto loop;

                objLic = null;

                TelasBLL objTel = new TelasBLL();
                PermissaoBLL objPer = new PermissaoBLL();
                objPer.localizar(global.permissao, "per_nome");
                tab = objTel.localizarComRetorno(objPer.per_codigo.ToString(),"per_codigo");

                for (int k = 0; k < tab.Rows.Count; k++)
                {
                    if (tab.Rows[k][3].ToString() == "Categoria")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            CATEGORIASToolStripMenuItem.Visible = true;
                        else
                            CATEGORIASToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Cidade")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            cIDADEToolStripMenuItem.Visible = true;
                        else
                            cIDADEToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Cliente")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                        {
                            cLIENTESToolStripMenuItem.Visible = true;
                            btnclientes.Visible = true;
                        }
                        else
                        {
                            cLIENTESToolStripMenuItem.Visible = false;
                            btnclientes.Visible = false;
                        }
                    }
                    if (tab.Rows[k][3].ToString() == "Compras")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                        {
                            rEALIZARCOMPRAToolStripMenuItem.Visible = true;
                            btncompras.Visible = true;
                        }
                        else
                        {
                            rEALIZARCOMPRAToolStripMenuItem.Visible = false;
                            btncompras.Visible = false;
                        }
                    }
                    if (tab.Rows[k][3].ToString() == "ContasAPagar")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            cONTASAPAGARToolStripMenuItem.Visible = true;
                        else
                            cONTASAPAGARToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "ContasAReceber")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            cONTASARECEBERToolStripMenuItem.Visible = true;
                        else
                            cONTASARECEBERToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Empresa")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            eMPRESAToolStripMenuItem.Visible = true;
                        else
                            eMPRESAToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "EntradaMercadoria")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            entradaMercadoriaToolStripMenuItem.Visible = true;
                        else
                            entradaMercadoriaToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Estado")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            eSTADOToolStripMenuItem.Visible = true;
                        else
                            eSTADOToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Forma_Pagamento")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            FORMADEPAGAMENTOToolStripMenuItem.Visible = true;
                        else
                            FORMADEPAGAMENTOToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Fornecedor")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            fORNECEDORESToolStripMenuItem.Visible = true;
                        else
                            fORNECEDORESToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "frm_Fechamento")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            fECHAMENTOToolStripMenuItem.Visible = true;
                        else
                            fECHAMENTOToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "frm_CodigoBarra")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            eSTOQUEToolStripMenuItem.Visible = true;
                        else
                            eSTOQUEToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Grupo")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            GRUPOSToolStripMenuItem.Visible = true;
                        else
                            GRUPOSToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Permissa")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            pERMISSÕESToolStripMenuItem.Visible = true;
                        else
                            pERMISSÕESToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Produto")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                        {
                            pRODUTOSToolStripMenuItem.Visible = true;
                            btnprodutos.Visible = true;
                        }
                        else
                        {
                            pRODUTOSToolStripMenuItem.Visible = false;
                            btnprodutos.Visible = false;
                        }
                    }
                    if (tab.Rows[k][3].ToString() == "Subgrupo")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            sUBGRUPOToolStripMenuItem.Visible = true;
                        else
                            sUBGRUPOToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "TrocaDeProdutos")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            tROCADEPRODUTOSToolStripMenuItem.Visible = true;
                        else
                            tROCADEPRODUTOSToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Unidades")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            uNIDADESToolStripMenuItem.Visible = true;
                        else
                            uNIDADESToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Usuario")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                            uSUÁRIOSToolStripMenuItem.Visible = true;
                        else
                            uSUÁRIOSToolStripMenuItem.Visible = false;
                    }
                    if (tab.Rows[k][3].ToString() == "Vendas")
                    {
                        if (tab.Rows[k][2].ToString() == "true")
                        {
                            rEALIZARVENDAToolStripMenuItem.Visible = true;
                            btnvendas.Visible = true;
                        }
                        else
                        {
                            rEALIZARVENDAToolStripMenuItem.Visible = false;
                            btnvendas.Visible = false;
                        }
                    }
                }
                //if (cIDADEToolStripMenuItem.Visible == false && eSTADOToolStripMenuItem.Visible == false)
                //    LOCALIZAÇÃOToolStripMenuItem.Visible = false;
                //else
                //    LOCALIZAÇÃOToolStripMenuItem.Visible = true;
                //objTel = null;

                //if (rEALIZARCOMPRAToolStripMenuItem.Visible == false && entradaMercadoriaToolStripMenuItem.Visible == false)
                //    ComprasToolStripMenuItem.Visible = false;
                //else
                //    ComprasToolStripMenuItem.Visible = true;
                
                //if (cONTASAPAGARToolStripMenuItem.Visible == false && cONTASARECEBERToolStripMenuItem.Visible == false)
                //    fINANCEIROToolStripMenuItem1.Visible = false;
                //else
                //    fINANCEIROToolStripMenuItem1.Visible = true;

                //if (rEALIZARVENDAToolStripMenuItem.Visible == false && tROCADEPRODUTOSToolStripMenuItem.Visible == false)
                //    vENDASToolStripMenuItem.Visible = false;
                //else
                //    vENDASToolStripMenuItem.Visible = true;

                if (global.permissao == "Gerente")
                    rELATÓRIOSToolStripMenuItem.Visible = true;
                else
                    rELATÓRIOSToolStripMenuItem.Visible = false;

                this.MinimumSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
                this.WindowState = FormWindowState.Maximized;
                this.MinimumSize = this.MinimumSize;
                this.MaximumSize = this.MaximumSize;
                this.Text = ".:SVC - Sistema de Venda Comercial:.";

                timer1.Enabled = true;

                AberturaCaixaBLL objAber = new AberturaCaixaBLL();
                //verifica se nunca entrou no sistema (1º vez geral)
                objAber.isPrimeiraVez();
                if (objAber.codigo > 0)
                {
                    objAber.limpar();
                    //não é a primeira vez geral
                    objAber.isPrimeiraVezDia();
                    if (objAber.codigo == 0) //é a primeira vez do dia
                    {
                        //objAber.usuario = global.codUsuario;
                        //objAber.data = DateTime.Now.Date;
                        //objAber.hora = TimeSpan.FromHours(DateTime.Now.Hour)+ TimeSpan.FromMinutes(DateTime.Now.Minute)+TimeSpan.FromSeconds(DateTime.Now.Second);
                        //FechamentoCaixaBLL objFC = new FechamentoCaixaBLL();
                        //objFC.CaixaInicial();
                        //objAber.valor = objFC.valor;
                        //objFC = null;
                        //objAber.inserirDia();
                        //if(DateTime.Now.Hour<12)
                        //    MessageBox.Show("Bom dia " + global.nomeUsuario + ", o caixa foi aberto com " + Convert.ToDouble(objAber.valor).ToString("C"), "Abertura de Caixa", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        //else
                        //    MessageBox.Show("Boa tarde " + global.nomeUsuario + ", o caixa foi aberto com " + Convert.ToDouble(objAber.valor).ToString("C"), "Abertura de Caixa", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                        //primeira vez, então registrar um insert
                        String valorString = "";
                        Double valor = 0;
                        do
                        {
                            valorString = Interaction.InputBox("Informe o Fundo de Caixa", "Abertura de Caixa", "", this.Width - this.Width / 2 - 200, this.Height - this.Height / 2-150);
                            if (valorString == "")
                                MessageBox.Show("Valor de abertura deve ser um número maior do que 0");
                            else
                            {
                                Double.TryParse(valorString, out valor);
                                if (valor == 0)
                                    MessageBox.Show("Valor de abertura deve ser um número maior do que 0");
                            }
                        } while (valorString == "" || valor == 0);
                        objAber.usuario = global.codUsuario;
                        objAber.data = DateTime.Now.Date;
                        String hora = DateTime.Now.TimeOfDay.ToString();
                        objAber.hora = TimeSpan.Parse(hora);
                        objAber.valor = valor;
                        objAber.inserir();
                        if (MessageBox.Show("Deseja Imprimir o valor do Fundo de Caixa?", "Imprimir", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                        {
                            
                            String impressora = "LPT";
                            int tentativa = 0;
                            int COM = 0;
                        loopMenu:
                            ImprimeTexto imp = new ImprimeTexto();
                            if (tentativa == 3)
                            {
                                COM++;
                                impressora = "COM";
                                imp.Inicio(impressora + COM.ToString());
                            }
                            else
                            {
                                tentativa++;
                                imp.Inicio(impressora + tentativa.ToString());
                            }
                            imp.ImpLF("Usuário: " + global.nomeUsuario);
                            imp.ImpLF("Data:" + objAber.data.ToString() + " " + objAber.hora.ToString());
                            imp.ImpLF(valor.ToString());
                            imp.Pula(10);
                            if (!imp.Fim())
                            {
                                //if (tentativa < 3)
                                //{
                                //    imp = null;
                                //    goto loop;
                                //}
                                if (COM < 5)
                                {
                                    imp = null;
                                    goto loopMenu;
                                }
                                else
                                    throw new Exception("Nenhuma impressora foi localizada");
                            }
                            imp = null;
                        }

                    }
                    else
                    {
                        //MessageBox.Show("não é primeira vez no dia");
                    }
                }
                else
                {

                    //primeira vez, então registrar um insert
                    String valorString="";
                    Double valor = 0;
                    do
                    {
                        valorString = Interaction.InputBox("Informe o Fundo de Caixa", "Abertura de Caixa", "", this.Width - this.Width / 2 - 200, this.Height - this.Height / 2 - 150);
                        if (valorString == "")
                            MessageBox.Show("Valor de abertura deve ser um número maior do que 0");
                        else
                        {
                            Double.TryParse(valorString, out valor);
                            if(valor == 0)
                                MessageBox.Show("Valor de abertura deve ser um número maior do que 0");
                        }                        
                    }while (valorString == "" || valor == 0);
                    objAber.usuario = global.codUsuario;
                    objAber.data = DateTime.Now.Date;
                    String hora = DateTime.Now.TimeOfDay.ToString();
                    objAber.hora = TimeSpan.Parse(hora);
                    objAber.valor = valor;
                    objAber.inserir();
                    if (MessageBox.Show("Deseja Imprimir o valor do Fundo de Caixa?", "Imprimir", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                    {
                        
                        String impressora = "LPT";
                        int tentativa = 0;
                        int COM = 0;
                    loopMenu:
                        ImprimeTexto imp = new ImprimeTexto();
                        if (tentativa == 3)
                        {
                            COM++;
                            impressora = "COM";
                            imp.Inicio(impressora + COM.ToString());
                        }
                        else
                        {
                            tentativa++;
                            imp.Inicio(impressora + tentativa.ToString());
                        }   
                        imp.ImpLF("Usuário: " + global.nomeUsuario);
                        imp.ImpLF("Data:" + objAber.data.ToString() + " " + objAber.hora.ToString());
                        imp.ImpLF(valor.ToString());
                        imp.Pula(10);
                        if (!imp.Fim())
                        {
                            //if (tentativa < 3)
                            //{
                            //    imp = null;
                            //    goto loop;
                            //}
                            if (COM < 5)
                            {
                                imp = null;
                                goto loopMenu;
                            }
                            else
                                throw new Exception("Nenhuma impressora foi localizada");
                        }
                        imp = null;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void Menu_LocationChanged(object sender, EventArgs e)
        {
            try
            {
                this.Location = new Point(0, 0);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                lHora.Text = DateTime.Now.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void Menu_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                if (sair == 0) //A variável sair foi utilizada pois quando ocorre o "this.close" ele entra novamente nesta função, ocorrendo assim uma recursividade, logo é necessário uma variável para que se consiga controlar o momento em que a tela deve ser fechada
                {
                    if (MessageBox.Show("Deseja realmente sair?", "Fechar", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                    {
                        sair = 1; // No momento em que o cliente confirmar que quer sair o evento por si só concluirá o fechamento, não sendo necessário informar o this.close
                    }
                    else
                    {
                        e.Cancel = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
            
        }

        private void FORMADEPAGAMENTOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Forma_Pagamento frm = new CADASTROS.Forma_Pagamento();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void GRUPOSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Grupo frm = new CADASTROS.Grupo();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void uNIDADESToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Unidades frm = new CADASTROS.Unidades();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void sUBGRUPOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Sub_Grupo frm = new CADASTROS.Sub_Grupo();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void eSTADOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Estado frm = new CADASTROS.Estado();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }

        }

        private void cIDADEToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Cidade frm = new CADASTROS.Cidade();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void eMPRESAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Empresa frm = new CADASTROS.Empresa();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void pERMISSÕESToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Permissao frm = new CADASTROS.Permissao();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void uSUÁRIOSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Usuario frm = new CADASTROS.Usuario();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cLIENTESToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Cliente frm = new CADASTROS.Cliente();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fORNECEDORESToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Fornecedor frm = new CADASTROS.Fornecedor();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void pRODUTOSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Produto frm = new CADASTROS.Produto();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void btnclientes_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Cliente frm = new CADASTROS.Cliente();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void btnprodutos_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Produto frm = new CADASTROS.Produto();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void btnvendas_Click(object sender, EventArgs e)
        {
            MOVIMENTACOES.Vendas frm = new MOVIMENTACOES.Vendas();
            frm.ShowDialog();
            frm = null;
        }

        private void btncompras_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.Compras frm = new MOVIMENTACOES.Compras();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void btnfinanceiro_Click(object sender, EventArgs e)
        {

        }

        private void mARCASToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                CADASTROS.Marcas frm = new CADASTROS.Marcas();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void rEALIZARCOMPRAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.Compras frm = new MOVIMENTACOES.Compras();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void sAIRToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cONFIRMARCOMPRAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.EntradaMercadoria frm = new MOVIMENTACOES.EntradaMercadoria();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cONTASAPAGARToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.ContasAPagar frm = new MOVIMENTACOES.ContasAPagar();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fORMAPAGAMENTOTESTEToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.frmContasAReceber frm = new MOVIMENTACOES.frmContasAReceber();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void rEALIZARVENDAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.Vendas frm = new MOVIMENTACOES.Vendas();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void tROCADEPRODUTOSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.TrocaDeProdutos frm = new MOVIMENTACOES.TrocaDeProdutos();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cONTASÁPAGARToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.ContasAPagar frm = new MOVIMENTACOES.ContasAPagar();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cONTASARECEBERToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MOVIMENTACOES.frmContasAReceber frm = new MOVIMENTACOES.frmContasAReceber();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cLIENTESQUEMAISCOMPRARAMToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_datas frm = new RELATORIOS.frm_datas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "relClientesMaisComprou";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void gERARETIQUETASDECÓDIGODEBARRAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_CodigoBarra frm = new RELATORIOS.frm_CodigoBarra();
                frm.controle = "Pimaco6089";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void gERARETIQUETASDECÓDIGODEBARRAPIMACO6287ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_CodigoBarra frm = new RELATORIOS.frm_CodigoBarra();
                frm.controle = "Pimaco6287";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void eNTRADADEMERCADORIAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_datas frm = new RELATORIOS.frm_datas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "EntradaMercadoria";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cLIENTESATENDIDOSPORPERÍODOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_datas frm = new RELATORIOS.frm_datas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "ClientesAtendidos";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void pRODUTOSVENDIDOSPORPERÍODOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_ProdutosDatas frm = new RELATORIOS.frm_ProdutosDatas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "ProdutosVendidosPorCliente";
                    frmRel.produtoInicial = frm.produtoIncial;
                    frmRel.produtoFinal = frm.produtoFinal;                    
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fÍSICOFINANCEIROCOMPRASToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "Físico Financeiro (Compras)";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fÍSICOFINANCEIROVENDASToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "Físico Financeiro (Vendas)";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void pOSIÇÃODEESTOQUEToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "PosicaoEstoque";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cONTASAPAGAREMABERTOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_datas frm = new RELATORIOS.frm_datas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "ContasAPagarEmAberto";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cONTASAPAGARPAGASToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_datas frm = new RELATORIOS.frm_datas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "ContasAPagarPagas";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void vENDASCANCELADASToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "VendasCanceladas";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void vENDASPORBALCONISTAToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_CodDatas frm = new RELATORIOS.frm_CodDatas();
                frm.lControle = "Funcionário";
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "VendasPorBalconista";
                    frmRel.codigo = frm.codigo;
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cONTASARECEBERToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_CodDatas frm = new RELATORIOS.frm_CodDatas();
                frm.lControle = "Cliente";
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "ContasAReceber";
                    frmRel.codigo = frm.codigo;
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fECHAMENTOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Fechamento frm = new RELATORIOS.frm_Fechamento();
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cLIENTESToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Clientes";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void aBERTURAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Abertura";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cATEGORIAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Categoria";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fECHAMENTOToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Fechamento";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fORMADEPAGAMENTOToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_FormaPagamento";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void fORNECEDORESToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Fornecedor";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void gRUPOSToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Grupo";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void mARCASToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Marcas";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void sUBGRUPOSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Subgrupo";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void uNIDADESToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "rpt_Unidades";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void pRODUTOSPORMARCAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_ProdMarca frm = new RELATORIOS.frm_ProdMarca();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "ProdutosPorMarca";
                    frmRel.marca = frm.marca;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cAIXAPORLUCRATIVIDADEToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_datas frm = new RELATORIOS.frm_datas();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "sp_CaixaPorLucratividade";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "Cancelar")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void cOMPRAPORPERÍODOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_CompraPorPeriodo frm = new RELATORIOS.frm_CompraPorPeriodo();
                frm.ShowDialog();
                if (frm.controle == "Gerar")
                {
                    RELATORIOS.frm_Relatorio frmRel = new RELATORIOS.frm_Relatorio();
                    frmRel.controle = "sp_CompraPorPeriodo";
                    frmRel.dataInicial = frm.dataInical;
                    frmRel.dataFinal = frm.dataFinal;
                    frmRel.marca = frm.marca;
                    frmRel.grupo = frm.grupo;
                    frmRel.ShowDialog();
                    frmRel = null;
                }
                else if (frm.controle == "")
                    throw new Exception("Relatório Cancelado");
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void pARCELASEMATRASOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RELATORIOS.frm_Relatorio frm = new RELATORIOS.frm_Relatorio();
                frm.controle = "Parcelas Em Atraso";
                frm.ShowDialog();
                frm = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

      
    }
}
